#ifndef __ATOMTRACE_BVH_STACK_H_
#define __ATOMTRACE_BVH_STACK_H_

#define BVH_NODE_SIZE 8
#define BVH_STACK_SIZE 32

namespace AtomTrace
{
    class bvhStack{
        int current;
    //public:
        int mData[BVH_STACK_SIZE]; // keep the node indices
    public:
        bvhStack();

        bool IsEmpty() const;
        bool IsFull() const;
        
        bool Push(int nodeID);
        int Pop();

        const int & operator[](int index) const;

        const int & GetCurrent() const;
        const int GetStackSize() const;
    }; // class bvhStack
}// namespace AtomTrace

#endif // __ATOMTRACE_BVH_STACK_H_
